package com.hzdl.week01;

import java.util.Arrays;

/**
 * 6.封装一个方法实现数组的混淆，
 * 即随便传入一个数组都可以把数组元素的顺序打乱（
 * 类似于斗地主的洗牌）：(10分，考点：数组、结构语句)
 */
public class Week01_06 {
    public static void main(String[] args) {
        //生成1~10的随机数
//        System.out.println((int) (Math.random()*9+1));
        int [] arr = {1,2,3,4,5,6,7,8,9,10};

        for (int i = arr.length-1; i >=0; i--) {
            //随机互换值的下标
            int r = (int) (Math.random()*9+1);

            if (r != i) {
                //跟随机下标元素互换值
                //异或的可逆性来交换值
                arr[i] = arr[i]^arr[r];
                arr[r] = arr[i]^arr[r];
                arr[i] = arr[i]^arr[r];
            }
        }
        System.out.println("打乱之后的数组："+ Arrays.toString(arr));
    }
}
